package com.mocha.common.config;

import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
import com.jfinal.plugin.c3p0.C3p0Plugin;
import com.jfinal.plugin.cron4j.Cron4jPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.plugin.redis.RedisPlugin;
import com.jfinal.render.ViewType;
import com.jfinal.template.Engine;
import com.mocha.common.myroute.HelloRoute;
import com.mocha.entity.Blog;
import com.mocha.task.TaskTest;
import com.mocha.template.templateTest;
import com.sun.xml.internal.ws.api.model.MEP;

public class MainConfig extends JFinalConfig {
	/**
	 * 配置JFinal常量
	 */
	@Override
	public void configConstant(Constants me) {
		//读取数据库配置文件
		PropKit.use("config.properties");
		//设置当前是否为开发模式
		me.setDevMode(PropKit.getBoolean("devMode"));
		//设置默认上传文件保存路径 getFile等使用
		me.setBaseUploadPath("upload/temp");
		//设置上传最大限制尺寸
		//me.setMaxPostSize(1024*1024*10);		//设置默认下载文件路径 renderFile使用
		//me.setBaseDownloadPath("");
		//设置默认视图类型
		me.setViewType(ViewType.JSP);
		//设置404渲染视图
		me.setErrorView(404,"/login.html");
		
		//设置403渲染视图
		me.setErrorView(403,"/login.html");
	}
	/**
	 * 配置JFinal路由映射
	 */
	@Override
	public void configRoute(Routes me) {
		me.add("/", TemplateController.class,"/template");
		me.add("/axios", indexController.class,"/index");
		me.setBaseViewPath("/views");
		me.add("/hello", HelloController.class,"/hello");
	}
	/**
	 * 配置JFinal插件
	 * 数据库连接池
	 * ORM
	 * 缓存等插件
	 * 自定义插件
	 */
	@Override
	public void configPlugin(Plugins me) {
		//orm映射 配置ActiveRecord插件
		C3p0Plugin c3p0Plugin = new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password"));
//		DruidPlugin dp = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password"));
		ActiveRecordPlugin arp=new ActiveRecordPlugin(c3p0Plugin);
		arp.setShowSql(PropKit.getBoolean("devMode"));
		arp.setDialect(new MysqlDialect());
		arp.addMapping("blog", Blog.class);
		me.add(c3p0Plugin);
		me.add(arp);
		//定时任务
//		Cron4jPlugin cp = new Cron4jPlugin("cron4j.properties","cron4jjj");
//		me.add(cp);
//		RedisPlugin redisPlugin = new RedisPlugin("bbs", "localhost");
//		me.add(redisPlugin);
		
	}
	/**
	 * 配置全局拦截器
	 */
	@Override
	public void configInterceptor(Interceptors me) {

	}
	/**
	 * 配置全局处理器
	 */
	@Override
	public void configHandler(Handlers me) {

	}
	@Override
	public void configEngine(Engine me) {
		// TODO Auto-generated method stub
		
	}
	

}
